package com.itbour.dao.material;

import java.util.List;
import java.util.Map;

import com.itbour.dto.com.CoopAppInfoDto;
import com.itbour.dto.com.FeedbackFromInfoDto;
import com.itbour.dto.com.FeedbackInfoDto;
import com.itbour.dto.com.ItbAreaInfoDto;
import com.itbour.dto.com.PartnerAreaInfoDto;
import com.itbour.dto.com.PartnerCustInfoDto;
import com.itbour.dto.com.PartnerIncomeInfoDto;
import com.itbour.dto.com.PartnerInfoDto;
import com.itbour.dto.com.TopicInfoDto;
import com.itbour.dto.com.TopicRInfoDto;
import com.itbour.dto.tg.DesignInfoDto;
import com.itbour.dto.tg.TypeInfoDto;


/**
 * copyright   itbour team 2015
 * @author     xc
 *
 */

public interface ItbComDao {

	// 专题相关sql
	public int selectTopicCnt(Map<String,Object> param);
	public List<TopicInfoDto> selectTopicInfo(Map<String,Object> param);
	public void deleteTopicInfoLogic(Map<String,Object> param);
	public void deleteTopicRInfoLogic(Map<String,Object> param);
	public void insertTopicInfo(Map<String,Object> param);
	public void updateTopicInfoById(Map<String,Object> param);
	
	//专题 设计模板
	public int selectSpecialDesignCnt(Map<String, Object> parm);
	public int selectSpecialPPtCnt(Map<String, Object> parm);
	public List<DesignInfoDto> getSpecialDesignInfo(Map<String, Object> parm);//专题下普通设计模板 例如:印品
	public List<DesignInfoDto> getSpecialPPtInfo(Map<String, Object> parm);//获取专题下PPT的设计模板
	public int selectSuitDesignCnt(Map<String, Object> parm);
	public List<DesignInfoDto> getSuitDesign(Map<String, Object> parm);//适合的设计模板
	public int selectSuitPPTCnt(Map<String, Object> parm);
	public List<DesignInfoDto> getSuitPPTInfo(Map<String, Object> parm);//适合的PPT设计模板
	public void addSuitDesign(Map<String, Object> parm);
	public void delTopicDesign(Map<String, Object> parm);
	public void updTorder(Map<String, Object> parm);
	public List<TopicRInfoDto> getOneTopicRInfo(Map<String,Object> parm);
	public List<TypeInfoDto> selectOneType(Map<String, Object> parm);
	
	// 用户反馈相关sql
	public int selectFeedbackCnt(Map<String,Object> param);
	public List<FeedbackInfoDto> selectFeedbackInfo(Map<String,Object> param);
	public void deleteFeedbackInfoLogic(Map<String,Object> param);
	public List<FeedbackFromInfoDto> selectFeedbackFromInfo(Map<String,Object> param);
	public void updateFeedbackInfoById(Map<String,Object> param);
	
	// 合作申请相关sql
	public int selectCoopAppCnt(Map<String,Object> param);
	public List<CoopAppInfoDto> selectCoopAppInfo(Map<String,Object> param);
	public void deleteCoopAppInfoLogic(Map<String,Object> param);
	public void updateCoopAppInfoById(Map<String,Object> param);
	
	// 合伙人相关sql
	public int selectPartnerCnt(Map<String,Object> param);
	public List<PartnerInfoDto> selectPartnerInfo(Map<String,Object> param);
	public void deletePartnerInfoLogic(Map<String,Object> param);
	public void updatePartnerInfoById(Map<String,Object> param);
	public void insertPartnerInfo(Map<String,Object> param);
	// 合伙人管辖区域sql
	public int selectPartnerAreaCnt(Map<String,Object> param);
	public List<PartnerAreaInfoDto> selectPartnerAreaInfo(Map<String,Object> param);
	public List<PartnerAreaInfoDto> selectPartnerAreaInfoForChk(Map<String,Object> param);
	public void deletePartnerAreaInfoLogic(Map<String,Object> param);
	public void insertPartnerAreaInfo(Map<String,Object> param);
	public List<ItbAreaInfoDto> selectItbAreaInfo(Map<String,Object> param);
	// 合伙人收益sql
	public int selectPartnerIncomeCnt(Map<String,Object> param);
	public List<PartnerIncomeInfoDto> selectPartnerIncomeInfo(Map<String,Object> param);
	public void deletePartnerIncomeInfoLogic(Map<String,Object> param);
	public void insertPartnerIncomeInfo(Map<String,Object> param);
	public void updatePartnerIncomeInfoById(Map<String,Object> param);
	public Long calPartnerIncome(Map<String,Object> param);
	public Long calPartnerIncomeEx(Map<String,Object> param);
	public Long calPartnerBonus(Map<String,Object> param);
	// 合伙人下线用户sql
	public int selectPartnerCustCnt(Map<String,Object> param);
	public List<PartnerCustInfoDto> selectPartnerCustInfo(Map<String,Object> param);
	public void updatePartnerCustEndTimeByUser(Map<String,Object> param);
	
}
